package com.yidu.ladder.delivery.dao;

import java.util.List;
import java.util.Map;

import com.yidu.ladder.delivery.domain.BasicJobList;
import com.yidu.ladder.delivery.domain.ChargingInfo;
import com.yidu.ladder.delivery.domain.Pack;
import com.yidu.ladder.delivery.domain.PackInfo;
import com.yidu.ladder.delivery.domain.PackVo;

public interface PackDao {

	/**
	 * 查询所有的工作单ID
	 * @return
	 */
	List<String> findAllBasicJobListNo();
	
	/**
	 * 根据工作单编号查询基本工作单
	 * @param jobListNo
	 * @return
	 */
	BasicJobList findBasicJobListByJobListNo(String jobListNo);
	
	/**
	 * 添加包装单
	 * @param pack
	 * @return
	 */
	int addPack(List<Pack> packList);
	
	/**
	 * 查询所有的包装单
	 * @return
	 */
	List<Pack> findAllPack(Map<String, Object> paramMap);
	
	/**
	 * 查询包装单数量
	 * @return
	 */
	int findPackCount(Map<String, Object> paramMap);
	
	/**
	 * 查询所有包装信息
	 * @param paramMap
	 * @return
	 */
	List<PackInfo> findAllPackInfo();
	
	/**
	 * 查询包装信息数量
	 * @return
	 */
	int findPackInfoCount();
	
	/**
	 * 查询所有包装单的工作单号
	 * @return
	 */
	List<String> findAllPackJobListNo();
	
	/**
	 * 根据工作单号查询包装单
	 * @return
	 */
	Pack findPackByJobListNo(String jobListNo);
	
	/**
	 * 根据包装项目和体积查询包装信息
	 * @param paramMap
	 * @return
	 */
	PackInfo findPackInfoByProjectAndSize(Map<String, Object> paramMap);
	
	/**
	 * 修改工作单表的信息
	 * @param basicJobList
	 * @return 所修改的行数
	 */
	int updateBasicJoblist(BasicJobList basicJobList);
	
	/**
	 * 修改计费信息表的信息
	 * @param basicJobList
	 * @return 所修改的行数
	 */
	int updateChargingInfo(ChargingInfo chargingInfo);
	
	/**
	 * 修改包装表的信息
	 * @param basicJobList
	 * @return 所修改的行数
	 */
	int updatePack(Pack Pack);
	
	/**
	 * 查询所有包装的完整信息
	 * @param paramMap
	 * @return
	 */
	List<PackVo> findPackWhole(Map<String, Object> paramMap);
	
	/**
	 * 查询所有包装的完整信息的数量
	 * @param paramMap
	 * @return
	 */
	int findPackWholeCount(Map<String, Object> paramMap);
	
	/**
	 * 根据输入的工作单号查询打印条形码需要的数据
	 * @param jobListNo
	 * @return
	 */
	PackVo findBarCodeInfo(String jobListNo);
	
	/**
	 * 查询所有包装完成的工作单号
	 * @return
	 */
	List<String> findAllPackSuccess();
}


